#! /usr/bin/python2.4

# Copyright 2007 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""verify.py stub unittest"""


import unittest

import svn.fs
import svn.repos

import gvn.hooks.info
import gvn.hooks.post_commit.verify
from gvn.hooks.post_commit.verify import RunHook

import testing.hooks.common


class TestVerify(testing.hooks.common.HookTestCase):

  def testVerify(self):
    """verify rev 1, check if SVNADMIN path is set right in hook.
    """

    # seed argv with expected arguments during a regular call, and overwrite
    # the ones we need to, with our own values lower down
    argv = ["post-commit", "repo_name_bogus_ignored", 1 ] # 1 is revision
    hi = gvn.hooks.info.HookInfo(argv, userdb='ignored')
    hi.repos_path = self.repo_name

    self.assertHookResult(RunHook(hi, self._logger, email=''), 0)

  def testVerifyNonRev(self):
    """verify revision 9999, which doesn't exist and will generate a failure.
    """

    # seed argv with expected arguments during a regular call, and overwrite
    # the ones we need to, with our own values lower down
    argv = ["post-commit", "repo_name_bogus_ignored", 2^31 ] # too high a rev
    hi = gvn.hooks.info.HookInfo(argv, userdb='ignored')
    hi.repos_path = self.repo_name

    self.assertHookResult(RunHook(hi, self._logger, email=''),
        '.*svnadmin: Revisions must not be greater than the youngest revision')
